Developing and coding a user interface, for example, on a mobile application can often times be a very time consuming and difficult process. The process can be more difficult when writing code for multi-platform applications that are configured to run on different devices and channels. Each device or channel can have its very own set of features that may have to be accounted for during the deployment of the application. For example, implementing a user interface for a touchscreen device can be very different from designing a user interface for a non-touch screen device.
One approach may include focusing on the particular device or channel and adapting the application to the particular platform of the device. Although this approach may be useful in certain instances, following this approach may result in the need to design the application multiple times for each device or channel in implementing the application. Another approach may include focusing directly on the application to be deployed and to design the application to have a similar appearance and feel across each device and channel. To implement the application on a particular device, one approach may be to translate the program into the appropriate code for the particular device.
Current application development can be biased towards application-style development and can be tightly coupled to the target device that the end-user intends to use, e.g., workstation, browser, smartphone, tablet, and the like. Software can be written and delivered for only a workstation, or only for a mobile device, or for only a browser. This may lead to high heterogeneity in the user experience space, lack of reusability of code developed, longer time-to-market as similar capabilities are developed across multiple devices, and ultimately a higher cost to support a growing set of technology components.